////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2017-2018 Qualcomm Technologies, Inc.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// THIS IS AUTO-GENERATED CODE.  PLEASE DO NOT EDIT (File bug reports against tools).
///
/// Auto-generated by: ParameterParser V1.1.4
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @file  eis_1_0_0.h
/// @brief Auto-generated Chromatix parameter file
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef EIS_1_0_0_H
#define EIS_1_0_0_H

#include "parametermodule.h"
#include "parameterfilesymboltable.h"
#include "parametertypes.h"
#include "ispglobalelements.h"

#define EIS_1_0_0_NAMESPACE_BEGIN namespace eis_1_0_0 {
#define EIS_1_0_0_NAMESPACE_END }

EIS_1_0_0_NAMESPACE_BEGIN

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// chromatix_eis10_reserveType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct chromatix_eis10_reserveType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// general
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct generalStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// virtual_margin
        ///
        /// Tuning Level:  must_tune
        /// Description:   Extra margin that allows the IS algorithm to operate on a margin that is larger than the actual physical
        ///                margin provided by the sensor. (sum of both sides).
        /// Default Value: 0.0
        /// Range:         [0, 0.75]
        /// Bit Depth:     float
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT               virtual_margin;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// focal_length
        ///
        /// Tuning Level:  must_tune
        /// Description:   Focal length in pixel unitsFocal length in pixel units for 1080p. This value is scaled for other
        ///                resolutions.
        /// Default Value: 1755
        /// Range:         [0, 65535]
        /// Bit Depth:     16u
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32              focal_length;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// gyro_frequency
        ///
        /// Tuning Level:  rarely_tune
        /// Description:   Gyro sampling frequency in Hz.
        /// Default Value: 400
        /// Range:         [200, 2000]
        /// Bit Depth:     16u
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32              gyro_frequency;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// gyro_noise_floor
        ///
        /// Tuning Level:  rarely_tune
        /// Description:   Gyro noise floor. Effective for EIS2 only.
        /// Default Value: 0.003
        /// Range:         [0, 0.1]
        /// Bit Depth:     float
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT               gyro_noise_floor;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// gyro_pixel_scale
        ///
        /// Tuning Level:  must_tune
        /// Description:   Scale factor to convert degree of rotation (yaw and pitch) to pixels. Effective for EIS2 only.
        /// Default Value: 30.0
        /// Range:         [20, 40]
        /// Bit Depth:     float
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT               gyro_pixel_scale;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// res_param_1
        ///
        /// Tuning Level:  never_tune
        /// Description:   Reserved parameter 1.
        /// Default Value: 0.0
        /// Range:         [-99999999999, 99999999999]
        /// Bit Depth:     float
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT               res_param_1;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// res_param_2
        ///
        /// Tuning Level:  never_tune
        /// Description:   Reserved parameter 2.
        /// Default Value: 0.0
        /// Range:         [-99999999999, 99999999999]
        /// Bit Depth:     float
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT               res_param_2;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// res_param_3
        ///
        /// Tuning Level:  never_tune
        /// Description:   Reserved parameter 3.
        /// Default Value: 0.0
        /// Range:         [-99999999999, 99999999999]
        /// Bit Depth:     float
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT               res_param_3;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// res_param_4
        ///
        /// Tuning Level:  never_tune
        /// Description:   Reserved parameter 4.
        /// Default Value: 0.0
        /// Range:         [-99999999999, 99999999999]
        /// Bit Depth:     float
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT               res_param_4;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// res_param_5
        ///
        /// Tuning Level:  never_tune
        /// Description:   Reserved parameter 5.
        /// Default Value: 0.0
        /// Range:         [-99999999999, 99999999999]
        /// Bit Depth:     float
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT               res_param_5;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// res_param_6
        ///
        /// Tuning Level:  never_tune
        /// Description:   Reserved parameter 6.
        /// Default Value: 0.0
        /// Range:         [-99999999999, 99999999999]
        /// Bit Depth:     float
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT               res_param_6;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// res_param_7
        ///
        /// Tuning Level:  never_tune
        /// Description:   Reserved parameter 7.
        /// Default Value: 0.0
        /// Range:         [-99999999999, 99999999999]
        /// Bit Depth:     float
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT               res_param_7;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// res_param_8
        ///
        /// Tuning Level:  never_tune
        /// Description:   Reserved parameter 8.
        /// Default Value: 0.0
        /// Range:         [-99999999999, 99999999999]
        /// Bit Depth:     float
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT               res_param_8;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// res_param_9
        ///
        /// Tuning Level:  never_tune
        /// Description:   Reserved parameter 9.
        /// Default Value: 0.0
        /// Range:         [-99999999999, 99999999999]
        /// Bit Depth:     float
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT               res_param_9;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// res_param_10
        ///
        /// Tuning Level:  never_tune
        /// Description:   Reserved parameter 10.
        /// Default Value: 0.0
        /// Range:         [-99999999999, 99999999999]
        /// Bit Depth:     float
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT               res_param_10;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// res_lut_param_1_tab
        ///
        /// Tuning Level:  never_tune
        /// Description:   Reserved Lut parameter 1.
        /// Default Value: 0.0
        /// Range:         [-99999999999, 99999999999]
        /// Bit Depth:     float
        /// Length:        32
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        struct res_lut_param_1_tabStruct
        {

            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            /// res_lut_param_1 - Array
            ///
            /// Tuning Level:  never_tune
            /// Default Value: 0.0
            /// Length:        32
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            FLOAT res_lut_param_1[32];
        } res_lut_param_1_tab;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// res_lut_param_2_tab
        ///
        /// Tuning Level:  never_tune
        /// Description:   Reserved Lut parameter 2.
        /// Default Value: 0.0
        /// Range:         [-99999999999, 99999999999]
        /// Bit Depth:     float
        /// Length:        32
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        struct res_lut_param_2_tabStruct
        {

            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            /// res_lut_param_2 - Array
            ///
            /// Tuning Level:  never_tune
            /// Default Value: 0.0
            /// Length:        32
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            FLOAT res_lut_param_2[32];
        } res_lut_param_2_tab;
    } general;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// timing
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct timingStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// s3d_offset_1
        ///
        /// Tuning Level:  must_tune
        /// Description:   offset to adjust the 3D shake gyro interval start/end times to better align with the frame. (Offset
        ///                between gyro timing and sof timing in ms).
        /// Default Value: 5500
        /// Range:         [-30000, 30000]
        /// Bit Depth:     32s
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        INT32 s3d_offset_1;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// s3d_offset_2
        ///
        /// Tuning Level:  must_tune
        /// Description:   offset to adjust the 3D shake gyro interval start/end times to better align with the frame. (Offset
        ///                between gyro timing and sof timing in ms).
        /// Default Value: 500
        /// Range:         [-30000, 30000]
        /// Bit Depth:     32s
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        INT32 s3d_offset_2;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// s3d_offset_3
        ///
        /// Tuning Level:  must_tune
        /// Description:   offset to adjust the 3D shake gyro interval start/end times to better align with the frame. (Offset
        ///                between gyro timing and sof timing in ms).
        /// Default Value: -4500
        /// Range:         [-30000, 30000]
        /// Bit Depth:     32s
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        INT32 s3d_offset_3;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// s3d_offset_4
        ///
        /// Tuning Level:  must_tune
        /// Description:   offset to adjust the 3D shake gyro interval start/end times to better align with the frame. (Offset
        ///                between gyro timing and sof timing in ms).
        /// Default Value: -7500
        /// Range:         [-30000, 30000]
        /// Bit Depth:     32s
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        INT32 s3d_offset_4;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// s3d_threshold_1
        ///
        /// Tuning Level:  must_tune
        /// Description:   threshold whereby exposure times above and below this threshold results in a different offset getting
        ///                applied to the 3D shake gyro time interval. Thresholding for deciding s3d_offset based on integration
        ///                time in seconds).
        /// Default Value: 0.005
        /// Range:         [0, 0.03]
        /// Bit Depth:     float
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT s3d_threshold_1;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// s3d_threshold_2
        ///
        /// Tuning Level:  must_tune
        /// Description:   threshold whereby exposure times above and below this threshold results in a different offset getting
        ///                applied to the 3D shake gyro time interval. Thresholding for deciding s3d_offset based on integration
        ///                time in seconds).
        /// Default Value: 0.010
        /// Range:         [0, 0.03]
        /// Bit Depth:     float
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT s3d_threshold_2;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// s3d_threshold_3
        ///
        /// Tuning Level:  must_tune
        /// Description:   threshold whereby exposure times above and below this threshold results in a different offset getting
        ///                applied to the 3D shake gyro time interval. Thresholding for deciding s3d_offset based on integration
        ///                time in seconds).
        /// Default Value: 0.020
        /// Range:         [0, 0.03]
        /// Bit Depth:     float
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT s3d_threshold_3;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// s3d_threshold_4_ext
        ///
        /// Tuning Level:  must_tune
        /// Description:   threshold whereby exposure times above and below this threshold results in a different offset getting
        ///                applied to the 3D shake gyro time interval. Thresholding for deciding s3d_offset based on integration
        ///                time in seconds).
        /// Default Value: 0.020
        /// Range:         [0, 0.03]
        /// Bit Depth:     float
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT s3d_threshold_4_ext;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// rs_offset_1
        ///
        /// Tuning Level:  must_tune
        /// Description:   offset to adjust the 3D shake gyro interval start/end times to better align with the frame. (Offset
        ///                between gyro timing and sof timing in ms).
        /// Default Value: 5500
        /// Range:         [-30000, 30000]
        /// Bit Depth:     32s
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        INT32 rs_offset_1;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// rs_offset_2
        ///
        /// Tuning Level:  must_tune
        /// Description:   offset to adjust the 3D shake gyro interval start/end times to better align with the frame. (Offset
        ///                between gyro timing and sof timing in ms).
        /// Default Value: 500
        /// Range:         [-30000, 30000]
        /// Bit Depth:     32s
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        INT32 rs_offset_2;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// rs_offset_3
        ///
        /// Tuning Level:  must_tune
        /// Description:   offset to adjust the 3D shake gyro interval start/end times to better align with the frame. (Offset
        ///                between gyro timing and sof timing in ms).
        /// Default Value: -4500
        /// Range:         [-30000, 30000]
        /// Bit Depth:     32s
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        INT32 rs_offset_3;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// rs_offset_4
        ///
        /// Tuning Level:  must_tune
        /// Description:   offset to adjust the 3D shake gyro interval start/end times to better align with the frame. (Offset
        ///                between gyro timing and sof timing in ms).
        /// Default Value: -7500
        /// Range:         [-30000, 30000]
        /// Bit Depth:     32s
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        INT32 rs_offset_4;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// rs_threshold_1
        ///
        /// Tuning Level:  must_tune
        /// Description:   threshold whereby exposure times above and below this threshold results in a different offset getting
        ///                applied to the 3D shake gyro time interval. Thresholding for deciding s3d_offset based on integration
        ///                time in seconds).
        /// Default Value: 0.005
        /// Range:         [0, 0.03]
        /// Bit Depth:     float
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT rs_threshold_1;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// rs_threshold_2
        ///
        /// Tuning Level:  must_tune
        /// Description:   threshold whereby exposure times above and below this threshold results in a different offset getting
        ///                applied to the 3D shake gyro time interval. Thresholding for deciding s3d_offset based on integration
        ///                time in seconds).
        /// Default Value: 0.010
        /// Range:         [0, 0.03]
        /// Bit Depth:     float
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT rs_threshold_2;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// rs_threshold_3
        ///
        /// Tuning Level:  must_tune
        /// Description:   threshold whereby exposure times above and below this threshold results in a different offset getting
        ///                applied to the 3D shake gyro time interval. Thresholding for deciding s3d_offset based on integration
        ///                time in seconds).
        /// Default Value: 0.020
        /// Range:         [0, 0.03]
        /// Bit Depth:     float
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT rs_threshold_3;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// rs_threshold_4_ext
        ///
        /// Tuning Level:  must_tune
        /// Description:   threshold whereby exposure times above and below this threshold results in a different offset getting
        ///                applied to the 3D shake gyro time interval. Thresholding for deciding s3d_offset based on integration
        ///                time in seconds).
        /// Default Value: 0.020
        /// Range:         [0, 0.03]
        /// Bit Depth:     float
        /// Conversion:    No Conversion needed
        /// Notes:         Constant: no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT rs_threshold_4_ext;
    } timing;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// chromatix_eis10Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct chromatix_eis10Type
{
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Binary file symbol table entry ID
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    UINT32 SymbolTableID;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// module_version
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct module_versionStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;
        INT32 major_revision;
        INT32 minor_revision;
        INT32 incr_revision;
    } module_version;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// chromatix_eis10_reserve
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    chromatix_eis10_reserveType chromatix_eis10_reserve;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// chromatix_eis10TypeClass
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class chromatix_eis10TypeClass : public ParameterModule, public chromatix_eis10Type
{
public:
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Version
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static const UINT16 MAJOR = 1;
    static const UINT16 MINOR = 0;
    static const UINT32 PATCH = 0;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Default Constructor
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    chromatix_eis10TypeClass(
        const CHAR* name);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Constructor
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    chromatix_eis10TypeClass(
        const CHAR* name,
        UINT32 modeId,
        UINT16 mode,
        UINT16 subMode,
        UINT32 group);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Destructor
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    virtual ~chromatix_eis10TypeClass();

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// GetName
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static const CHAR* GetName(
        const CHAR* type);


    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load chromatix_eis10_reserveType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadchromatix_eis10_reserveType(
        ParameterFileSymbolTableEntry* entry,
        chromatix_eis10_reserveType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load chromatix_eis10_reserveType_generalStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadchromatix_eis10_reserveType_generalStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_eis10_reserveType::generalStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load chromatix_eis10_reserveType_chromatix_eis10_reserveType_generalStruct_res_lut_param_1_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadchromatix_eis10_reserveType_chromatix_eis10_reserveType_generalStruct_res_lut_param_1_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_eis10_reserveType::generalStruct::res_lut_param_1_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load chromatix_eis10_reserveType_chromatix_eis10_reserveType_generalStruct_res_lut_param_2_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadchromatix_eis10_reserveType_chromatix_eis10_reserveType_generalStruct_res_lut_param_2_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_eis10_reserveType::generalStruct::res_lut_param_2_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load chromatix_eis10_reserveType_timingStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadchromatix_eis10_reserveType_timingStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_eis10_reserveType::timingStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load chromatix_eis10Type
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadchromatix_eis10Type(
        ParameterFileSymbolTableEntry* entry,
        chromatix_eis10Type* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load module_versionStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmodule_versionStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_eis10Type::module_versionStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Parse symbol table entry, and return a new object
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    virtual ParameterModule* Parse(
        ParameterSetManager* manager,
        ParameterFileSymbolTableEntry* entry) const;

}; // End class chromatix_eis10TypeClass

EIS_1_0_0_NAMESPACE_END
#endif // EIS_1_0_0_H

